home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / msdos / raytrace / pov / gen / form04a / docs / mutation.doc < prev    next >
Text File  |  1994-03-11  |  6KB  |  155 lines

  1. Mutations in FORM
  2.  
  3. Form is now able to display mutations of a FORM on the screen.
  4.  
  5. It's still very much a prototype, but I thought someone out there
  6. might like to see even this much. Feel free to send suggestions and
  7. bug reports to rummy@snaffle.demon.co.uk . 
  8.  
  9. To enable mutations use the command line flag -mutate
  10. To change the starting layout use -Layout=x (automatically enables mutate)
  11.  
  12. Form will then read in the original (parent) form, and display it and
  13. three mutations of it on the screen.
  14.  
  15. e.g.
  16. ╔═══════════════════════════════╗───────────────────────────────────┐
  17. ║                               ║                                   │
  18. ║            │     │            ║           │  │  │                 │
  19. ║            └──┬──┘            ║           └──┼──┘                 │
  20. ║               │               ║              │                    │
  21. ║               │               ║              │ ┌──                │
  22. ║               ├─              ║              ├─┘                  │
  23. ║Parent         │             1 ║              │                  2 │
  24. ╚═══════════════════════════════╝───────────────────────────────────┤
  25. │                 ┌──┬───┐      │                                   │
  26. │           │     │  │   │      │           │     │                 │
  27. │           └──┬──┘  │   │      │           └──┬──┘       │         │
  28. │              │         └      │              │      │   │         │
  29. │              │                │              │      │   ├──       │
  30. │              ├─               │              ├──────┴───┤         │
  31. │              │              3 │              │          └──     4 │
  32. └───────────────────────────────┴───────────────────────────────────┘
  33.  
  34.  
  35. As it displays each mutation you will get the message Parsing, and
  36. then FORM will start drawing the image.
  37.  
  38. At any stage you can press ESC or TAB, 
  39. ESC stops this set of mutations and displays the one line menu, 
  40. TAB stops the current mutation and goes onto the next one, or the
  41. menu. 
  42.  
  43. Form may take some time to respond, particularly if you are in the
  44. Parsing stage.
  45.  
  46. The currently selected mutation is highlighted, you can move the
  47. highlight box using the cursor keys.
  48.  
  49. The bottom line menu:
  50.  
  51. This displays the mutation factor, and the mutation currently
  52. selected.  
  53.  
  54. There are also some options that you can pick:
  55.  
  56. Quit        takes you back to DOS
  57.  
  58. Factor  allows you to change the mutation factor, 
  59.             3 is fairly wild 
  60.             0.5 is the default
  61.             use lower values for fine tuning your results.
  62.  
  63. Save    saves the currently highlighted form to a filename supplied
  64.         by you.
  65.  
  66. Layout  you can select how many mutations are displayed at a time. 
  67.         2 gives you 4
  68.         3 gives you 9
  69.         4 gives you 16
  70.         5 gives you 25
  71.  
  72. Res     it is possible to change the screen res from 
  73.         1   (not recommended)  
  74.     to  3   (highly recommended)
  75.  
  76. sMoothness  this is the same as the -q option on the command line
  77.  
  78. Precision   this is the same as the -float flag on the command line
  79.  
  80. Pressing the cursor keys moves the highlght around the screen so you
  81. can select a new parent to mutate from
  82. Pressing return or "G" (Go) starts a new set of mutations base on the
  83. currently selected mutation.
  84.  
  85.  
  86. The Current parent is always saved in a file called PARENT$.FRM As
  87. each form is drawn it is saved to a file called temp1.frm, temp2.frm
  88. etc.
  89.  
  90. HOW it works(ish).
  91. ==================
  92. Every number entered in the FORM is considered suitable for mutation,
  93. and will almost certainly be changed by the mutation system. Each
  94. number (GENE) is taken and processed through the follwing code
  95.  
  96. NewGene = Gene + Random((Random(0.5)+Gene)*MutationFactor)
  97.  
  98. This means that each gene is changed proportionally by a random
  99. amount, with some nudging to prevent locking at a value of 0. So a
  100. stack of 20 is more likely to change by at least 1 than a stack of 5.
  101.  
  102. WARNINGS
  103. ========
  104.  
  105. Don't try and mutate anything with a screen_scale factor in it.
  106.  
  107. BUGS 
  108. ====
  109. For some reason FORM seems to crash eratically. I wish I knew why,
  110. I've surrounded the code in as much detection as I can manage and
  111. still it crashes. So save your work frequently, and remember there's
  112. always Parent$.frm and temp#.frm. I haven't seen this bug for a
  113. while, but that doesn't mean it has gone.
  114.  
  115. Mutations of form which use #include don't save correctly.
  116. Don't use them if you can avoid them.
  117.  
  118. Sometimes after a long session FORM might run out of memory.
  119. Currently it looses about 4K per set of mutations. I'm tracking this
  120. down at the moment, and this bug is NOT related to the spontaneous crashes.
  121.  
  122. All values are treated the same!, this means that bends and twists
  123. can take a long time to creep up from low values. So don't go
  124. throwing in any BEND 0's to see what will happen, or you'll be there
  125. all day.
  126.  
  127. IMPROVEMENTS (due sometime)
  128. ===========================
  129. USER INTERFACE
  130. If you have any suggestions at all regarding the user interface
  131. please let me know. I've got practically no idea at all what to do.
  132.  
  133. PREDICTION
  134. Given a history of previous parents I should be able to "guess" where
  135. you're headed and automatically adjust the mutation factors as you
  136. get close.
  137.  
  138. RETRY
  139. This could mutate just the currently selected mutation
  140.  
  141. BACK
  142. This could take you back to the previous mutation in this "cell".
  143.  
  144. ANIMATION
  145. I'm very interested in this and you're quite likely to see something
  146. of this in the next version.
  147.  
  148. SAVING COMPLETE LAYOUTS
  149. I'm thinking about this.
  150.  
  151. ETC.ETC. 
  152.  
  153. Please let me know of ANY (and I mean any) ideas you may have. 
  154.  
  155.